#pragma once

#include <HSModel/GeometryUtils.h>
#include <string>

class Ogre::SceneManager;
class Ogre::MeshManager;
class Model3D;
namespace Ogre
  {
  class SceneManager;
  }

class Model3DRenderer
  {
  public:
    Model3DRenderer(const Model3D& i_model, Ogre::SceneManager* ip_scene_manager, Ogre::MeshManager* ip_mesh_manager,
      const std::string& i_name, const std::string& i_mesh_type, const TVector3& i_point,
      bool i_destroy_mesh = false, const double i_angle = 0.0);
    ~Model3DRenderer();
    
    std::string GetObjectName() const;
    void SetNodePosition(const TVector3& i_point);
    void SetNodeOrientation(const double i_angle);
  private:
    std::string m_object_name;
    std::string m_mesh_type;
    bool m_destroy_mesh;

    Ogre::SceneManager* mp_scene_manager;
    Ogre::MeshManager* mp_mesh_manager;
  };